-
Notifications
You must be signed in to change notification settings - Fork 736
Python: Add Integration tests for AzureFunctions #2020
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python: Add Integration tests for AzureFunctions #2020
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds comprehensive integration tests for Azure Functions samples in the Durable Agent Framework. The tests automatically start and stop Azure Functions apps for each sample using dynamically allocated ports, and validate their behavior through HTTP calls.
- Adds integration test infrastructure with fixtures for managing function app lifecycle
- Implements test coverage for 7 Azure Functions samples (single agent, multi-agent, orchestration patterns, callbacks, and HITL)
- Updates CI workflow to set up required emulators (Azurite and Durable Task Scheduler)
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
python/packages/azurefunctions/tests/integration_tests/testutils.py |
Core test utilities for managing function app lifecycle, port allocation, and orchestration polling |
python/packages/azurefunctions/tests/integration_tests/conftest.py |
Pytest configuration with fixtures for starting/stopping function apps based on markers |
python/packages/azurefunctions/tests/integration_tests/test_*.py |
Integration tests for each sample (01-07), validating HTTP endpoints and orchestration behavior |
python/packages/azurefunctions/tests/integration_tests/README.md |
Documentation for running integration tests and required setup |
.github/actions/azure-functions-integration-setup/action.yml |
GitHub Actions setup for emulators (Azurite and DTS) |
.github/workflows/python-merge-tests.yml |
Updated CI workflow to include emulator setup |
python/samples/getting_started/azure_functions/07_single_agent_orchestration_hitl/function_app.py |
Simplified type hints from dict[str, Any] to dict |
python/packages/azurefunctions/tests/integration_tests/README.md
Outdated
Show resolved
Hide resolved
python/packages/azurefunctions/tests/integration_tests/README.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 5 comments.
...n/samples/getting_started/azure_functions/07_single_agent_orchestration_hitl/function_app.py
Show resolved
Hide resolved
...n/samples/getting_started/azure_functions/07_single_agent_orchestration_hitl/function_app.py
Show resolved
Hide resolved
python/samples/getting_started/azure_functions/07_single_agent_orchestration_hitl/README.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated no new comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 38 out of 38 changed files in this pull request and generated 5 comments.
python/packages/azurefunctions/tests/integration_tests/conftest.py
Outdated
Show resolved
Hide resolved
python/packages/azurefunctions/tests/integration_tests/testutils.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 39 out of 39 changed files in this pull request and generated 1 comment.
python/packages/azurefunctions/tests/integration_tests/testutils.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 47 out of 47 changed files in this pull request and generated 2 comments.
python/packages/azurefunctions/tests/integration_tests/conftest.py
Outdated
Show resolved
Hide resolved
python/packages/azurefunctions/tests/integration_tests/testutils.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 50 out of 50 changed files in this pull request and generated 7 comments.
python/samples/getting_started/azure_functions/03_callbacks/requirements.txt
Show resolved
Hide resolved
...ples/getting_started/azure_functions/04_single_agent_orchestration_chaining/requirements.txt
Show resolved
Hide resolved
...s/getting_started/azure_functions/06_multi_agent_orchestration_conditionals/requirements.txt
Show resolved
Hide resolved
...es/getting_started/azure_functions/05_multi_agent_orchestration_concurrency/requirements.txt
Show resolved
Hide resolved
.../samples/getting_started/azure_functions/07_single_agent_orchestration_hitl/requirements.txt
Show resolved
Hide resolved
python/samples/getting_started/azure_functions/01_single_agent/requirements.txt
Show resolved
Hide resolved
python/samples/getting_started/azure_functions/02_multi_agent/requirements.txt
Show resolved
Hide resolved
* Python: Add Scaffolding for Durable AzureFunctions package to Agent Framework (#1823) * Add scafolding * update readme * add code owners and label * update owners * .NET: Durable extension: initial src and unit tests (#1900) * Python: Add Durable Agent Wrapper code (#1913) * add initial changes * Move code and add single sample * Update logger * Remove unused code * address PR comments * cleanup code and address comments --------- Co-authored-by: Dmytro Struk <[email protected]> * Azure Functions .NET samples (#1939) * Python: Add Unit tests for Azurefunctions package (#1976) * Add Unit tests for Azurefunctions * remove duplicate import * .NET: [Feature Branch] Migrate state schema updates and support for agents as MCP tools (#1979) * Python: Add more samples for Azure Functions (#1980) * Move all samples * fix comments * remove dead lines * Make samples simpler * .NET: [Feature Branch] Durable Task extension integration tests (#2017) * .NET: [Feature Branch] Update OpenAI config for integration tests (#2063) * Python: Add Integration tests for AzureFunctions (#2020) * Add Integration tests * Remove DTS extension * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Add pyi file for type safety * Add samples in readme * Updated all readme instructions * Address comments * Update readmes * Fix requirements * Address comments --------- Co-authored-by: Copilot <[email protected]> * .NET: [Feature Branch] Update dotnet-build-and-test.yml to support integration tests (#2070) Co-authored-by: Copilot <[email protected]> * Fix DTS startup issue and improve logging (#2103) * .NET: [Feature Branch] Introduce Azure OpenAI config for .NET pipeline (#2106) Also fixes an issue where we were trying to start docker containers for integration tests on Windows, which doesn't work. Co-authored-by: Copilot <[email protected]> * Fix uv.lock after merge * Python: Add README for Azure Functions samples setup (#2100) * Add README for Azure Functions samples setup Added setup instructions for Azure Functions samples, including environment setup, virtual environment creation, and running samples. * Update python/samples/getting_started/azure_functions/README.md Co-authored-by: Copilot <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Laveesh Rohra <[email protected]> * Fix or remove broken markdown file links (#2115) * .NET: [Feature Branch] Update HTTP API to be consistent across languages (#2118) * Python: Fix AzureFunctions Integration Tests (#2116) * Add Identity Auth to samples * Update python/samples/getting_started/azure_functions/README.md Co-authored-by: Copilot <[email protected]> * Update python/samples/getting_started/azure_functions/01_single_agent/function_app.py Co-authored-by: Copilot <[email protected]> * Update python/samples/getting_started/azure_functions/02_multi_agent/function_app.py Co-authored-by: Copilot <[email protected]> * Update python/samples/getting_started/azure_functions/06_multi_agent_orchestration_conditionals/README.md Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> * Python: Fix Http Schema (#2112) * Rename to threadid * Respond in plain text * Make snake-case * Add http prefix * rename to wait-for-response * Add query param check * address comments * .NET: Remove IsPackable=false in preparation for nuget release (#2142) * Python: Move `azurefunctions` to `azure` for import (#2141) * Move import to Azure * fix mypy * Update python/packages/azurefunctions/README.md Co-authored-by: Copilot <[email protected]> * Add missing types * Address comments --------- Co-authored-by: Copilot <[email protected]> * Update python/packages/azurefunctions/pyproject.toml Co-authored-by: Copilot <[email protected]> * Update python/packages/azurefunctions/agent_framework_azurefunctions/__init__.py Co-authored-by: Copilot <[email protected]> * Fix imports * Address PR feedback from westey-m (#2150) - Adds a link from the /dotnet/samples/README.md to /dotnet/samples/AzureFunctions - Make DurableAgentThread deserialization internal for future-proofing - Update JSON serialization logic to address recently discovered issues with source generator serialization * Address comments (#2160) --------- Co-authored-by: Laveesh Rohra <[email protected]> Co-authored-by: Chris Gillum <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Anirudh Garg <[email protected]>
Motivation and Context
Add integration tests for Azure Functions.
Description
The tests depend on our samples to provide the structure and our tests validate that they're working.
Azure Functions workers rely on the Functions host and a bunch of other emulators (azurite, DTS) to successfully run locally. This PR adds the setup for those emulators and functions host and starts it up before testing.
Contribution Checklist